package br.ufrj.ad;

import java.io.IOException;

import br.ufrj.ad.configuracao.Cenario;
import br.ufrj.ad.configuracao.Parametros;

public class Principal {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Simulacao.EVENTOS_RODADA = 50000;
		Simulacao.EVENTOS_FASE_TRANSIENTE = 50000;
		Simulacao.MINIMO_RODADAS = 15;
		/* Cenários normais
		Simulacao.EVENTOS_RODADA = 1000000;
		Simulacao.EVENTOS_FASE_TRANSIENTE = 50000;
		Simulacao.MINIMO_RODADAS = 15;
		*/
		
		/*
		rodaCenario(11);
		rodaCenario(12);
		rodaCenario(13);
		rodaCenario(21);
		rodaCenario(22);
		rodaCenario(23);
		
		rodaCenario(30);
		
		rodaCenario(41);
		rodaCenario(42);
		rodaCenario(43);
		rodaCenario(51);
		rodaCenario(52);
		rodaCenario(53);
		rodaCenario(61);
		rodaCenario(62);
		rodaCenario(63);
		 */
		rodaCenario(70);
		/*
		 */
		
	}

	private static void rodaCenario(int cenario) {
		if(cenario != 70)
			rodaCenario(cenario, 1, 50);
		else
			rodaCenario(cenario, 5, 50);
	}
	
	private static void rodaCenario(int cenario, int minPopRodadas, int maxPopRodadas) {
		for (int i = minPopRodadas; i <= maxPopRodadas; i++) {
			Parametros params = Cenario.getCenario(cenario, i );
			Simulacao s = new Simulacao(params);
			s.roda();
			
			if(params.N0 == 0) {
				break;
			}
		}
		
		if(cenario >= 30) {
			try {
				Simulacao.imprimeTracesVazao(cenario, minPopRodadas, maxPopRodadas);
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			Simulacao.vazaoMedia.clear();
			Simulacao.vazaoIC.clear();
			
		}
	}

}
